package Entity;
import FinalProject.PriceException;
import FinalProject.ProductFileManager;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        System.out.println("===== 电商商品管理系统 =====");

        // 1. 从文件加载商品（首次运行无文件）
        List<Entity_Product> products = ProductFileManager.loadProducts();
        // 关键修改：清空列表，避免新旧数据叠加
        products.clear();

        // 2. 添加合法商品
        try {
            Entity_Clothing shirt = new Entity_Clothing(
                "C001", "纯棉衬衫", 129.9, "舒适透气", "M"
            );
            Entity_Electronics phone = new Entity_Electronics(
                "E001", "智能手机", 2999.0, "高清摄像", "华为"
            );
            products.add(shirt);
            products.add(phone);
            System.out.println("\n✅ 成功添加：" + shirt.getName() + "、" + phone.getName());
        } catch (PriceException e) {
            System.err.println("❌ 合法商品添加失败：" + e.getMessage());
        }

        // 3. 添加错误商品（价格≤0）
        try {
            Entity_Clothing invalidShirt = new Entity_Clothing(
                "C002", "残次T恤", -30, "有破损", "L" // 价格错误
            );
            products.add(invalidShirt);
        } catch (PriceException e) {
            System.err.println("❌ 错误商品【残次T恤】添加失败：" + e.getMessage());
        }

        // 4. 展示所有商品
        System.out.println("\n===== 当前商品列表 =====");
        for (Entity_Product p : products) {
            p.displayInfo();
            if (p instanceof Entity_Clothing) {
                ((Entity_Clothing) p).showWashingGuide();
            } else if (p instanceof Entity_Electronics) {
                ((Entity_Electronics) p).checkWarranty();
            }
            System.out.println("------------------------");
        }

        // 5. 保存商品（删除旧文件，避免重复）
        ProductFileManager.saveProducts(products);

        System.out.println("\n===== 操作结束 =====");
    }
}